package com.zzyl.service;

import com.zzyl.base.ResponseResult;
import com.zzyl.dto.RetreatDto;
import com.zzyl.dto.RetreatReqDto;
import com.zzyl.vo.retreat.TasVo;

public interface RetreatService {
    ResponseResult cancel(String retreatCode, String taskId);
    /**
     * 驳回
     * @param retreatCode 退住申请编号
     * @param taskId 任务编号
     * @param message 驳回原因
     * @return 响应结果
     */
    ResponseResult reject(String message, String retreatCode, String taskId);

    /**
     * 退住管理
     *
     * @param reqDto 请求参数
     * @return 退住列表
     */
    ResponseResult selectByPage(RetreatReqDto reqDto);

    /**
     * 退住表单查询
     *
     * @param flowStatus  流程状态（0:申请退住，1:申请审批，2:解除合同，3:调整账单，4:账单审批，5:退住审批，6:费用算清）
     * @param retreatCode 退住编号
     * @param taskId      任务ID
     * @param assigneeId  当前处理人ID
     * @return 退住表单
     */
    ResponseResult<TasVo> getRetreat(Integer flowStatus, String retreatCode, String taskId, String assigneeId);
    /**
     * 提交退住申请审批
     * @param retreatDto 退住申请审批
     * @return 响应结果
     */
    ResponseResult submitRetreat(RetreatDto retreatDto);
}
